;; Boolean literals test
(display "Boolean literals test:\n")
(display #t) (display "")
(display #f) (display "\n\n")

;; Truthiness test
(display "Truthiness test:\n")
(if #t (display "#t is true") (display "#t is false")) (display "\n")
(if #f (display "#f is true") (display "#f is false")) (display "\n\n")

;; Boolean comparison
(display "Boolean comparison:\n")
(display (= #t #t)) (display "\n")
(display (= #t #f)) (display "\n")
(display (= #f #f)) (display "\n\n")

;; Logical operations with booleans
(display "Logical operations with booleans:\n")
(display (and #t #t)) (display "\n")
(display (and #t #f)) (display "\n")
(display (and #f #t)) (display "\n")
(display (and #f #f)) (display "\n")
(display (or #t #t)) (display "\n")
(display (or #t #f)) (display "\n")
(display (or #f #t)) (display "\n")
(display (or #f #f)) (display "\n")
(display (not #t)) (display "\n")
(display (not #f)) (display "\n\n")

;; Complex boolean expressions
(display "Complex boolean expressions:\n")
(display (and #t (or #f #t))) (display "\n")
(display (if (and #t (> 5 3)) "5 > 3 is true" "5 > 3 is false")) (display "\n")
(display (if (or #f (< 5 3)) "5 < 3 is true" "5 < 3 is false")) (display "\n")

;; Using boolean constants
(display "\nUsing boolean constants:\n")
(display #t) (display "")
(display #f) (display "\n")